home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
utils
/
vector21
/
slangraf.txt
< prev
next >
Wrap
Text File
|
1994-10-30
|
6KB
|
181 lines
/*
█████████████████████████████████████████████████████████████████████████████
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ KNOW-HOW.SLANG.GRAPHICS ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
█████████████████████████████████████████████████████████████████████████████
This text contain complete description of KNOW_HOW.SLANG.GRAPHICS 5.0x.
In addition to KNOW_HOW.SLANG and KNOW_HOW.GRAPHICS power it provide the
following features:
1. KNOW-HOW.SLANG.GRAPHICS is the BASIC with access to drawing tools of
current product (BGI, GDI ...). It provide to user the possibility to
load graphical resourses (DOS or Windows, or other if he add some code)
and interprete them in run-time. There are very many applications
of this tool, like run-time changeable GUI.
2. Maketing (without stage of compilation, KNOW-HOW.VECTOR, the
ready-to-use product of this type, is included) of BGI, GDI and so on
applications, vector drawing tools.
3. Together with BASIC math. functions it could also be used for data
plotting, spreadsheets and so on.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Functions░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
5.0x version supports following functions:
line(x1,y1,x2,y2)
lineto(x2,y2)
moveto(x1,y1)
ellipse(x,y,stangle,endangle,xr,yr)
rectangle(l,t,r,b)
poly(numpoints, POLY), as poly(4, 100,100, 200,200, 200,100, 100,100)
text(x,y,string)
color(color)
set_rgb(r,g,b) // set RGB color
style(fillstyle, fillcolor)
textsize(mx,dx,my,dy)
font("BGI font file name")
fill(1 or 0) - fill or not closed figures
zoom(zx, zy)
addzoom(zx, zy)
scroll(x, y)
addscroll(x, y)
rotate(alpha, x, y)
setline(width)
mirror(x), set mirror, all output will be reflected
rot_on // add rotations to stack for complex rotations
rot_off // flash stack of rotations
endrotate // pop last rotation
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ FILES ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
▐▐▐▐▐▐▐ Files OOPIC.H and OOPIC.CPP contains class, derived from Slang and
KH_Paint.
▐▐▐▐▐▐▐ Files USER1.INC and USERLANG.INC are modified to define new operators:
{ "line", LINE },
{ "lineto", LINETO },
{ "ellipse", ELLIPSE },
{ "rectangle", RECTANGLE },
{ "poly", POLY },
{ "text", TXT },
{ "moveto", MOVETO },
{ "color", SETCOLOR },
{ "set_rgb", SETCOLOR_RGB },
{ "style", SETFILLSTYLE },
{ "textsize", SETTEXTSIZE },
{ "font", SETFONT },
{ "fill", SETFILL },
{ "zoom", ZOOM },
{ "addzoom", ADDZOOM },
{ "scroll", SCROLL },
{ "addscroll", ADDSCROLL },
{ "rotate", ROTATE },
{ "setline", SETLINE },
{ "mirror", MIRROR },
{ "rot_on", ROTATE_ON },
{ "rot_off", ROTATE_OFF },
{ "endrotate", ENDROTATE },
in USERLANG and:
, LINE = USER + 1, LINETO, ELLIPSE, RECTANGLE, POLY, TXT, MOVETO,
SETCOLOR, SETCOLOR_RGB, SETFILLSTYLE, SETTEXTSIZE,
SETFONT, SETFILL,
ZOOM, ADDZOOM, SCROLL, ADDSCROLL, ROTATE, SETLINE, MIRROR,
ROTATE_ON, ROTATE_OFF, ENDROTATE
in USER1.INC
Defines are set in Options/Compiler/Code Generation.
Example, DOS:
#include <conio.h> // only for interruption on key pressed **************
class Demo : public OOPic
{
virtual void terminate(); // User-defined terminator (ESC and so on)
};
/////////////
void Demo::terminate()
{
if(kbhit())
{
getch();
if(kbhit())
getch();
serror(23);
}
}
void main()
{
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "");
Demo* basic = new Demo();
// basic->basic(basic->load_program("oopic.vec"));
char s[80] = "mirror(0,0)\r\nrotate(0,0,0)\r\nleft=10\r\ntop=10\r\nright=200\r\nbottom=200";
basic->basic(s);
char s1[80] = "color(15):style(1,7):header=\"Hello\"font(\"litt.chr\"):textsize(1,1,1,1)";
basic->basic(s1);
basic->basic(basic->load_program("window.vec"));
delete basic;
closegraph();
}
Example, Windows:
// This example demonstrates output to OWL window. If necessary,
// any other Windows library could be used.
#include <owl.h>
class Demo : public OOPic
{
public:
void demo();
};
///////////////////
void Demo::demo()
{
basic(load_program("oopic.vec"));
}
class TMyApp : public TApplication
{
public:
TMyApp(LPSTR AName, HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
: TApplication(AName, hInstance, hPrevInstance, lpCmdLine, nCmdShow) {};
virtual void InitMainWindow();
};
_CLASSDEF(TMyWindow)
class TMyWindow : public TWindow, public Demo
{
public:
TMyWindow(PTWindowsObject AParent, LPSTR ATitle)
: TWindow(AParent, ATitle), Demo() { DC = GetDC(HWindow); }
virtual void WMLButtonDown(RTMessage Msg)
= [WM_FIRST + WM_LBUTTONDOWN];
};
void TMyWindow::WMLButtonDown(RTMessage)
{
DC = GetDC(HWindow);
demo();
}
void TMyApp::InitMainWindow()
{
MainWindow = new TMyWindow(NULL, Name);
}
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
TMyApp MyApp("Sample KNOW-HOW.GRAPHICS Program", hInstance, hPrevInstance,
lpCmdLine, nCmdShow);
MyApp.Run();
return MyApp.Status;
}